package org.xukai.common.spel;

import java.util.Map;

/**
 * 键值翻译器，例如，将receiver_name翻译成Resolver能够解析的变量名称， 历史使用SPEL表达式，
 * 那么解析成的字符为#shop.receiverName
 * @author JackyLIU
 *
 */
public interface IKeyTranslater {

	/**
	 * 将key翻译成指定解析器的表达式
	 * @param key
	 * @return
	 */
	public String translate(String key);

	/**
	 * 获取FieldConfig的字段配置信息, Map中key对应的是键值，value对应的是键值配置
	 * @return
	 */
	public Map<String, FieldConfig<?>> getFieldConfigs();
	
	/**
	 * 根据键值获取配置
	 * @param key
	 * @return
	 */
	public <T> FieldConfig<T> getFieldConfig(String key);
}
